package model

import (
	util "gin-admin-api/utils"
	"time"
)

type SysAdmin struct {
	ID         uint       `gorm:"column:id;comment:'主键';primaryKey;NOT NULL" json:"id"`
	Username   string     `gorm:"column:username;varchar(64);comment:'用户名';NOT NULL" json:"username"`
	Password   string     `gorm:"column:password;varchar(64);comment:'密码';NOT NULL" json:"password"`
	Nickname   string     `gorm:"column:nickname;varchar(64);comment:'昵称';DEFAULT NULL" json:"nickname"`
	Icon       string     `gorm:"column:icon;varchar(500);comment:'头像';DEFAULT NULL" json:"icon"`
	Sex        int        `gorm:"column:sex;comment:'性别（1->男，2->女）';NOT NULL DEFAULT 1" json:"sex"`
	Email      string     `gorm:"column:email;varchar(64);comment:'邮箱';DEFAULT NULL" json:"email"`
	Phone      string     `gorm:"column:phone;varchar(64);comment:'手机';DEFAULT NULL" json:"phone"`
	Note       string     `gorm:"column:note;varchar(500);comment:'备注信息';DEFAULT NULL" json:"note"`
	Status     int        `gorm:"column:status;default:1;comment:'帐号启用状态：1->启用,2->禁用';NOT NULL" json:"status"`
	CreateTime util.HTime `gorm:"column:create_time;comment:'创建时间';NOT NULL" json:"createTime"`
}

func (SysAdmin) TableName() string {
	return "sys_admin"
}

// AddSysAdminDto 新增参数  //binding 标签是 Gin 框架内置的校验机制 required：表示该字段必须存在且不能为空。omitempty：表示该字段可以为空，如果为空则忽略后续校验。 为了使用 validate 标签进行数据校验，你需要引入第三方库 github.com/go-playground/validator/v10
type AddSysAdminDto struct {
	RoleId   uint   `validate:"required"` // 角色id
	Username string `validate:"required"` // 用户名
	Password string `validate:"required"` // 密码
	Nickname string `validate:"required"` // 昵称
	Sex      int    // 性别：1->男,2->女
	Phone    string `validate:"required"` // 手机号
	Email    string `validate:"required"` // 邮箱
	Note     string // 备注
	Status   int    `validate:"required"` // 状态：1->启用,2->禁用
}

// SysAdminInfo 根据id查询用户
type AddSysAdminInfoDto struct {
	ID         uint      `json:"id"`         // 用户id
	Username   string    `json:"username"`   // 用户名
	Nickname   string    `json:"nickname"`   // 昵称
	Status     int       `json:"status"`     // 状态：1->启用,2->禁用
	RoleId     uint      `json:"roleId"`     // 角色id
	Sex        int       `json:"sex"`        // 性别：1->男,2->女
	Email      string    `json:"email"`      // 邮箱
	Phone      string    `json:"phone"`      // 手机号
	Note       string    `json:"note"`       // 备注
	CreateTime time.Time `json:"createTime"` // 创建时间
}
